/*
 *    Copyright (c) 2018-2025, infomng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: infomng
 */

import { remote } from "@/api/admin/dict.js";

const validateDict = (rule, value, callback) => {
  remote(value).then((response) => {
    if (window.boxType === "edit") {
      return callback();
    }
    const result = response.data.data;
    if (result && result.length !== 0) {
      callback(new Error("同名字典已存在"));
    } else {
      callback();
    }
  });
};

export const tableOption = {
  border: true,
  index: true,
  indexLabel: "序号",
  stripe: true,
  menuAlign: "center",
  align: "center",
  refreshBtn: false,
  showClomnuBtn: false,
  searchMenuSpan: 6,
  searchSize: "mini",
  dialogDrag: true,
  column: [
    {
      label: "类型",
      prop: "dictType",
      search: true,
      editDisabled: true,
      rules: [
        {
          required: true,
          message: "请输入字典类型",
          trigger: "blur",
        },
        { validator: validateDict, trigger: "blur" },
      ],
    },
    {
      label: "描述",
      prop: "description",
      rules: [
        {
          required: true,
          message: "请输入字典描述",
          trigger: "blur",
        },
      ],
    },
    {
      label: "字典类型",
      prop: "systemFlag",
      type: "select",
      dicUrl: "/admin-api/system/dict-data/type?type=dict_type",
      rules: [
        {
          required: true,
          message: "请输入字典类型",
          trigger: "blur",
        },
      ],
      search: true,
    },
    {
      label: "备注信息",
      prop: "remarks",
    },
    {
      width: 150,
      label: "创建时间",
      prop: "createTime",
      type: "datetime",
      addDisplay: false,
      editDisabled: true,
      format: "yyyy-MM-dd HH:mm",
      valueFormat: "yyyy-MM-dd HH:mm:ss",
    },
  ],
};

export const tableDictItemOption = {
  border: true,
  index: true,
  indexLabel: "序号",
  stripe: true,
  menuAlign: "center",
  align: "center",
  refreshBtn: false,
  showClomnuBtn: false,
  searchSize: "mini",
  dialogDrag: true,
  column: [
    {
      label: "类型",
      prop: "dictType",
      addDisabled: true,
      editDisabled: true,
    },
    {
      width: 150,
      label: "数据值",
      prop: "value",
      rules: [
        {
          required: true,
          message: "请输入数据值",
          trigger: "blur",
        },
      ],
    },
    {
      label: "标签名",
      prop: "label",
      rules: [
        {
          required: true,
          message: "请输入标签名",
          trigger: "blur",
        },
      ],
    },
    {
      label: "描述",
      prop: "description",
      rules: [
        {
          required: true,
          message: "请输入字典描述",
          trigger: "blur",
        },
      ],
    },
    {
      label: "排序",
      prop: "sortOrder",
      type: "number",
      rules: [
        {
          required: true,
          message: "请输入排序",
          trigger: "blur",
        },
      ],
    },
    {
      label: "备注信息",
      prop: "remarks",
    },
  ],
};
export const tableDictItemOptionType = {
  border: true,
  index: true,
  indexLabel: "序号",
  stripe: true,
  menuAlign: "center",
  align: "center",
  refreshBtn: false,
  showClomnuBtn: false,
  searchSize: "mini",
  dialogDrag: true,
  menuWidth: "130",
  searchMenuSpan: 6,
  column: [
    {
      label: "类型",
      prop: "dictType",
      addDisabled: true,
      editDisabled: true,
      display: false,
      hide: true,
    },
    {
      width: 150,
      label: "数据值",
      prop: "value",
      display: false,
      hide: true,
      rules: [
        {
          required: true,
          message: "请输入数据值",
          trigger: "blur",
        },
      ],
    },
    {
      label: "产品类型",
      prop: "label",
      type: "select",
      rules: [
        {
          required: true,
          message: "请输入产品类型名",
          trigger: "blur",
        },
      ],
      search: true,
      searchLabelWidth: 100,
      width: 180,
      align: "left",
      headerAlign: "center",
      dicUrl: "/admin-api/system/dict-data/type?type=inner_type",
      props: {
        label: "label",
        value: "value",
      },
      dicMethod: "get",
    },
    {
      label: "品号",
      prop: "itemCode",
      type: "select",
      dicUrl: "/admin-api/o3-workorder/workordercps/getItemCodeList",
      props: {
        label: "label",
        value: "value",
      },
      dicMethod: "get",
      multiple: true,
      filterable: true,
      allowCreate: true,
      rules: [
        {
          required: true,
          message: "请选择包含的品号",
          trigger: "change",
        },
      ],
    },

    {
      label: "描述",
      prop: "description",
      rules: [
        {
          required: true,
          message: "请输入字典描述",
          trigger: "blur",
        },
      ],
      align: "left",
      overHidden: true,
      headerAlign: "center",
    },
    {
      label: "备注信息",
      prop: "remarks",
      width: 150,
      overHidden: true,
    },
    {
      prop: "createBy",
      span: 12,
      type: "input",
      label: "创建人",
      dicUrl: "/admin/user/getAllUser",
      props: {
        label: "name",
        value: "username",
      },
      dicMethod: "get",
      display: false,
      hide: false,
      width: 80,
    },

    {
      prop: "updateBy",
      span: 12,
      type: "input",
      label: "修改人",
      dicUrl: "/admin/user/getAllUser",
      props: {
        label: "name",
        value: "username",
      },
      dicMethod: "get",
      display: false,
      hide: false,
      width: 80,
    },
    {
      prop: "createTime",
      span: 12,
      type: "datetime",
      label: "创建时间",
      format: "yyyy-MM-dd HH:mm:ss",
      display: false,
      hide: false,
      valueFormat: "yyyy-MM-dd HH:mm:ss",
      width: 130,
    },

    {
      label: "排序",
      prop: "sortOrder",
      type: "number",
      display: false,
      hide: true,
      rules: [
        {
          required: true,
          message: "请输入排序",
          trigger: "blur",
        },
      ],
    },
  ],
};
